'use strict';

exports.main = async (event, context) => {
  // 获取用户 openid
  let openid;
  
  // 如果是HTTP请求，需要从body中解析参数
  if (event.body) {
    try {
      const bodyData = JSON.parse(event.body);
      openid = bodyData.openid;
    } catch (error) {
      console.error('解析请求体失败:', error);
      return {
        code: 400,
        message: '请求格式错误'
      };
    }
  } else {
    // 如果是云函数调用，直接从event中获取
    openid = event.openid;
  }
  
  console.log('openid', openid);
  
  // 参数校验
  if (!openid) {
    return {
      code: 400,
      message: '缺少 openid 参数'
    };
  }
  
  try {
    // 查询用户信息
    const db = uniCloud.database();
    const usersCollection = db.collection('uni-id-users');
    const userRecord = await usersCollection.where({
      'wx_openid.mp-weixin': openid
    }).get();
    
    // 处理用户数据，确保正确返回avatar字段
    const userData = userRecord.data.map(user => {
      // 确保avatar字段存在且是base64格式
      if (user.avatarData && !user.avatar) {
        // 如果只有avatarData字段，则将其转换为avatar字段
        user.avatar = user.avatarData;
      } else if (user.avatarData && user.avatar && user.avatar.startsWith('data:image')) {
        // 如果avatar字段已经是base64格式，优先使用avatar字段
        // 但确保avatarData字段不会被返回
        delete user.avatarData;
      } else if (!user.avatar && user.avatarData) {
        // 如果只有avatarData字段，则将其转换为avatar字段
        user.avatar = user.avatarData;
        delete user.avatarData;
      } else if (user.avatarData) {
        // 删除avatarData字段
        delete user.avatarData;
      }
      return user;
    });
    
    return {
      code: 0,
      message: '查询成功',
      data: userData
    };
  } catch (error) {
    console.error('查询用户信息失败:', error);
    return {
      code: 500,
      message: '服务器内部错误'
    };
  }
};